package ar.edu.unq.model;

import java.util.ArrayList;
import java.util.List;

/**
 * Representa un Equipo
 * 
 * @author Nicolas Faure
 */
public class Equipo implements Nombrable {

    private String nombre;

    private Tecnico tecnico;

    private List<Jugador> jugadores = new ArrayList<Jugador>();

    private int id;

    private int partidosGanados;

    public Equipo() {
    }

    public Equipo(final String nombre) {
        this.setNombre(nombre);
    }

    public Equipo(final String nombre, final Tecnico tecnico) {
        this.setNombre(nombre);
        this.setTecnico(tecnico);
    }

    /**
     * Obtiene un entero con el promedio de habilidades del equipo
     */
    public int obtenerPromedio() {
        int suma = 0;
        List<Titular> titulares = this.armarFormacion().getTitulares();
        for (Titular titular : titulares) {
            suma += titular.getJugador().getValorHabilidad(titular.getPosicion());
        }
        return suma / 11;
    }

    public Formacion armarFormacion() {
        return this.getTecnico().armarFormacion(this);
    }

    public String getNombre() {
        return this.nombre;
    }

    public void setNombre(final String nombre) {
        this.nombre = nombre;
    }

    public void setTecnico(final Tecnico tecnico) {
        this.tecnico = tecnico;
    }

    public Tecnico getTecnico() {
        return this.tecnico;
    }

    public void setJugadores(final List<Jugador> jugadores) {
        this.jugadores = jugadores;
    }

    public List<Jugador> getJugadores() {
        return this.jugadores;
    }

    public int getId() {
        return this.id;
    }

    public void setId(final int id) {
        this.id = id;
    }

    public int getPartidosGanados() {
        return this.partidosGanados;
    }

    public void setPartidosGanados(final int partidosGanados) {
        this.partidosGanados = partidosGanados;
    }

}
